<?php

session_start();
if (!isset($_SESSION['id_cliente'])) {
  $response = array("RESULT" => "1", "ERROR" => "Para poder realizar una compra debe ingresar al sitio con su usuario.<br>Por favor loguéese");
  echo json_encode($response);
  exit();
}

$id_cliente = $_SESSION['id_cliente'];

//valida que venga los datos de la compra
if (isset($_POST['id_articulo'])) {

  $id = $_POST['id_articulo'];
  $id_cantidad = 'cantidad_' . $id;

  if (isset($_POST[$id_cantidad])) {

    $cantidad = $_POST[$id_cantidad];

    if ($cantidad == 0) {
      $response = array("RESULT" => "1", "ERROR" => "Debe ingresar una cantidad valida");
      echo json_encode($response);
      exit();
    }
  } else {
    $response = array("RESULT" => "1", "ERROR" => "Error, faltan parametros");
    echo json_encode($response);
    exit();
  }
} else {
  $response = array("RESULT" => "1", "ERROR" => "Error, faltan parametros");
  echo json_encode($response);
  exit();
}

//el articulo:
require_once('../php/class/articulos.class.php');
$oArticulo = new articulo();
if (!$oArticulo->search($id)) {
  $response = array("RESULT" => "1", "ERROR" => "Error al buscar el articulo");
  echo json_encode($response);
  exit();
}

//compara el stock existente con lo pedido
if ($oArticulo->ID_TIPO_STOCK == 0) { //es sin pedido
  $cantidad_stock = $oArticulo->CANTIDAD_DISPONIBLE;
  $cantidad_pedido = $cantidad;

  if ($cantidad_pedido > $cantidad_stock) {
    $response = array("RESULT" => "1", "ERROR" => "Sólo quedan " . $cantidad_stock . " de " . $oArticulo->NOMBRE);
    echo json_encode($response);
    exit();
  }
}

$compra = $oArticulo->PRECIO_PUBLICO;
$compra_total = $compra * $cantidad;

require_once('../php/class/pedidos.class.php');
$oPedido = new pedido();

//si ya tiene un pedido le suma si no, lo crea
if ($oPedido->pedido_actual($id_cliente)) {
  $oPedido->COSTO_TOTAL = $oPedido->COSTO_TOTAL + $compra_total;
  $oPedido->FECHA_PEDIDO = date("Y-m-d");
  if (!@$oPedido->modify()) {
    $response = array("RESULT" => "1", "ERROR" => "Error al modificar el pedido");
    echo json_encode($response);
    exit();
  }
} else {

  require_once('../php/class/edificios.class.php');
  $oEdificio = new edificio();
  $oEdificio->buscar_direccion_cliente($id_cliente);

  //un nuevo pedido
  $oPedido->ID = $oPedido->getlastid();
  $oPedido->ID_CLIENTE = $_SESSION['id_cliente'];
  $oPedido->COSTO_TOTAL = $compra_total;
  $oPedido->FECHA_PEDIDO = date("Y-m-d");
  $oPedido->FECHA_ENTREGA = "1001-01-01";
//  $oPedido->DIA_ENTREGA = "";
  $oPedido->DIRECCION_ENTREGA = $oEdificio->DIRECCION;
  $oPedido->TELEFONO_CONTACTO = $oEdificio->TELEFONO;;
  $oPedido->ID_STATUS = 1; //Activo
  $oPedido->ID_CALIFICACION = 1; //positiva
  $oPedido->COMENTARIO = "";
  if (!@$oPedido->add()) {
    $response = array("RESULT" => "1", "ERROR" => "Error al agregar el pedido");
    echo json_encode($response);
    exit();
  }
}

//detalles del pedido
require_once('../php/class/detalles_pedidos.class.php');
$oDetallePedido = new detalle_pedido();
$oDetallePedido->ID = $oDetallePedido->getlastid();
$oDetallePedido->ID_PEDIDO = $oPedido->ID;
$oDetallePedido->ID_ARTICULO = $id;
$oDetallePedido->CANTIDAD = $cantidad;
$oDetallePedido->PRECIO_UNITARIO = $compra;
$oDetallePedido->ID_STATUS = 1; //activo

if (!@$oDetallePedido->add()) {
  $response = array("RESULT" => "1", "ERROR" => "Error al agregar el pedido");
  echo json_encode($response);
  exit();
} else {
  $cantidades = $oDetallePedido->sum_cantidad($id_cliente);
  $response = array("RESULT" => "0", "CANTIDAD" => $cantidades['CANTIDADES'][0]);
  echo json_encode($response);
  exit();
}
?>
